// 封装请求
import axios from 'axios'
import store from '@/store'
// 处理大数
import JSONBIGINT from 'json-bigint'

// 用create可以同时封装多套请求
// axios.create得到一个新实例
const requset = axios.create({
  // http://ttapi.research.itcast.cn/
  baseURL: 'http://toutiao-app.itheima.net/',
  // parse对后台返回数据处理前 对data进行转换
  transformResponse: [
    // data 后台返回的原始数据
    function (data) {
      try {
        return JSONBIGINT.parse(data)
      } catch (err) {
        return data
      }
    }
  ]
})

// 请求拦截器
requset.interceptors.request.use(config => {
  // config请求配置的请求的信息
  const { user } = store.state
  if (user && user.token) {
    config.headers.Authorization = `Bearer ${user.token}`
  }
  return config
}, error => {
  return Promise.reject(error)
})

export default requset
